Namespace persistent.DataLoad.ConfigurationProviders

    Public Interface IDataloadConfigurationProvider

        ReadOnly Property DataFileHeader() As String

        ReadOnly Property DataLineTemplate() As String

        ReadOnly Property DataPartSeperator() As Char

        ReadOnly Property DatalineValidationExpression() As String 'Implements IDataLoadRuler.InputValidationExpression

        ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection



        ReadOnly Property ModuleName() As String

        ReadOnly Property MasterDataTableName() As String

        ReadOnly Property DetailDataTableName() As String

        ReadOnly Property HistoryTableName() As String

        ReadOnly Property ProcessIDSequenceName() As String

        ReadOnly Property RequestProcessorMethodName() As String

        ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary

        ReadOnly Property OnlineProcessingStatusText() As String

        ReadOnly Property BatchProcessingStatusText() As String

    End Interface




    Public Class GenericDataloadConfigurationProvider
        Implements IDataloadConfigurationProvider

        Private _ModuleName As String
        Private _MasterDataTableName As String
        Private _DetailDataTableName As String
        Private _HistoryTableName As String
        Private _ProcessIDSequenceName As String
        Private _DataFileHeader As String
        Private _DataLineTemplate As String
        Private _DataPartSeperator As Char
        Private _DatalineValidationExpression As String
        Private _ExternalDatalineValidators As New DatalineValidatorCollection

        Private _RequestProcessorMethodName As String
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _OnlineProcessingStatusText As String
        Private _BatchProcessingStatusText As String

        Protected Sub New _
        ( _
            ByVal moduleName As String, _
            ByVal masterDataTableName As String, _
            ByVal detailDataTableName As String, _
            ByVal historyTableName As String, _
            ByVal processIDSequenceName As String, _
            ByVal dataFileHeader As String, _
            ByVal dataLineTemplate As String, _
            ByVal dataPartSeperator As Char, _
            ByVal datalineValidationExpression As String, _
            ByVal requestProcessorMethodName As String, _
            ByVal requestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary, _
            ByVal onlineProcessingStatusText As String, _
            ByVal batchProcessingStatusText As String _
        )
            Me._ModuleName = moduleName
            Me._MasterDataTableName = masterDataTableName
            Me._DetailDataTableName = detailDataTableName
            Me._HistoryTableName = historyTableName
            Me._ProcessIDSequenceName = processIDSequenceName
            Me._DataFileHeader = dataFileHeader
            Me._DataLineTemplate = dataLineTemplate
            Me._DataPartSeperator = dataPartSeperator
            Me._DatalineValidationExpression = datalineValidationExpression
            Me._RequestProcessorMethodName = requestProcessorMethodName
            Me._RequestProcessorMethodParameters = requestProcessorMethodParameters
            Me._OnlineProcessingStatusText = onlineProcessingStatusText
            Me._BatchProcessingStatusText = batchProcessingStatusText
        End Sub




        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return Me._ModuleName
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return Me._MasterDataTableName
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return Me._DetailDataTableName
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return Me._HistoryTableName
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return Me._ProcessIDSequenceName
            End Get
        End Property

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return Me._DataFileHeader
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return Me._DataLineTemplate
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return Me._DataPartSeperator
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return Me._DatalineValidationExpression
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return Me._RequestProcessorMethodName
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return Me._OnlineProcessingStatusText
            End Get
        End Property

        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return Me._BatchProcessingStatusText
            End Get
        End Property



    End Class

    Public NotInheritable Class MobilposDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As MobilposDataLoadConfigurationProvider
            Return New MobilposDataLoadConfigurationProvider
        End Function

        Private Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE eu_bill.mobilpos_th_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID   ""[PROCESSID]""," & _
                vbNewLine & "SEQNO        ," & _
                vbNewLine & "STATUS       ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE  sysdate ," & _
                vbNewLine & "MSISDN," & _
                vbNewLine & "CO_ID ""FN_MSISDN_TO_COID(:MSISDN)"", " & _
                vbNewLine & "CUSTOMER_ID ""FN_MSISDN_TO_CUSTID(:MSISDN)""" & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{1}||{0}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return ";"c
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.MOBILPOS_TH_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return String.Empty
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^\d{10,10}$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.MOBILPOS_TH_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "MOBILPOS"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.MOBILPOS_TH_PROCESS_ID_SEQ"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.MOBILPOS_TOLL_HANDLER"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "LOADED"
            End Get
        End Property

        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "OREDERD"
            End Get
        End Property

    End Class

    Public NotInheritable Class FreeuntiDeactivatorDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As FreeuntiDeactivatorDataLoadConfigurationProvider
            Return New FreeuntiDeactivatorDataLoadConfigurationProvider
        End Function

        Private Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub


        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "FU_DEACTIVATOR"
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.FU_DEACTIVATOR_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.FU_DEACTIVATOR_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return "EU_BILL.FU_DEACTIVATOR_REQUEST_HISTORY"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.FU_DEACTIVATOR_PROCESS_ID_SEQ"
            End Get
        End Property

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.FU_DEACTIVATOR_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID   ""[PROCESSID]""," & _
                vbNewLine & "SEQNO        ," & _
                vbNewLine & "STATUS       ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE  sysdate," & _
                vbNewLine & "MSISDN       , " & _
                vbNewLine & "CO_ID        ""fn_msisdn_to_coid(:MSISDN)"", " & _
                vbNewLine & "CUSTOMER_ID  ""fn_msisdn_to_custid(:MSISDN)"" " & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{1}||{0}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return "|"c
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^\d{10,10}$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property


        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "ORDERED"
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "SINGLE_ORDERED"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.BULK_PROCESSOR.PROCESS_FU_DEACTIVATE_REQ"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property
    End Class

    Public NotInheritable Class ImeiSetterDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As ImeiSetterDataLoadConfigurationProvider
            Return New ImeiSetterDataLoadConfigurationProvider
        End Function

        Private Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub


        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "IMEI_SETTER"
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.IMEI_SETTER_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.IMEI_SETTER_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return "EU_BILL.IMEI_SETTER_REQUEST_HISTORY"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.IMEI_SETTER_PROCESS_ID_SEQ"
            End Get
        End Property

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.IMEI_SETTER_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID   ""[PROCESSID]""," & _
                vbNewLine & "SEQNO        ," & _
                vbNewLine & "STATUS       ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE  sysdate," & _
                vbNewLine & "MSISDN       , " & _
                vbNewLine & "CO_ID        ""fn_msisdn_to_coid(:MSISDN)"", " & _
                vbNewLine & "CUSTOMER_ID  ""fn_msisdn_to_custid(:MSISDN)"", " & _
                vbNewLine & "NEW_IMEI     ""substr(:NEW_IMEI, 1, 14)""" & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{2}||{0}|||{1}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return ";"c
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "\d{10,10};\d{15,15}$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property


        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "ORDERED"
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "SINGLE_ORDERED"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.BULK_PROCESSOR.PROCESS_IMEI_UPDATE_REQ"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property
    End Class

    Public NotInheritable Class ShortNumberSetterDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As ShortNumberSetterDataLoadConfigurationProvider
            Return New ShortNumberSetterDataLoadConfigurationProvider
        End Function

        Private Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub


        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "MVPN_SN_SETTER"
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.MVPN_SN_SET_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.MVPN_SN_SET_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return "EU_BILL.MVPN_SN_SET_REQUEST_HISTORY"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.MVPN_SN_SET_PROCESS_ID_SEQ"
            End Get
        End Property

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.MVPN_SN_SET_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID   ""[PROCESSID]""," & _
                vbNewLine & "SEQNO        ," & _
                vbNewLine & "STATUS       ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE  sysdate," & _
                vbNewLine & "MSISDN       , " & _
                vbNewLine & "CO_ID        ""fn_msisdn_to_coid(:MSISDN)"", " & _
                vbNewLine & "CUSTOMER_ID  ""fn_msisdn_to_custid(:MSISDN)"", " & _
                vbNewLine & "NEW_SHORTNUM, " & _
                vbNewLine & "NEW_PROFILE " & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{3}||{0}|||{1}|{2}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return ";"c
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^\d{10,10};{1,1}\d{4,7};{1,1}[a-zA-Z0-9]+$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property


        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "ORDERED"
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "SINGLE_ORDERED"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.BULK_PROCESSOR.PROCESS_MVPN_REQ"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property
    End Class



    Public NotInheritable Class RealrunDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As RealrunDataLoadConfigurationProvider
            Return New RealrunDataLoadConfigurationProvider
        End Function

        Private Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub


        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "REAL_RUN"
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.REALRUN_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.REALRUN_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return "EU_BILL.REALRUN_REQUEST_HISTORY"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.REALRUN_PROCESS_ID_SEQ"
            End Get
        End Property

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.REALRUN_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID   ""[PROCESSID]""," & _
                vbNewLine & "SEQNO        ," & _
                vbNewLine & "STATUS       ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE  sysdate," & _
                vbNewLine & "CO_ID        , " & _
                vbNewLine & "MSISDN       ""fn_coid_to_msisdn(:CO_ID)"", " & _
                vbNewLine & "CUSTOMER_ID  ""fn_msisdn_to_custid(:MSISDN)"" " & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{1}||{0}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return "|"c
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^\d{1,30}$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property


        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "ORDERED"
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "SINGLE_ORDERED"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.REALRUN_BULK_PROCESSOR.PROCESS_REALRUN_REQ"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property
    End Class



    Public NotInheritable Class LinefreezeDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As LinefreezeDataLoadConfigurationProvider
            Return New LinefreezeDataLoadConfigurationProvider
        End Function

        Private Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub


        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "LINE_FREEZE"
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.LINE_FREEZE_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.LINE_FREEZE_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return "EU_BILL.LINE_FREEZE_REQUEST_HISTORY"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.LINEFREEZE_PROCESS_ID_SEQ"
            End Get
        End Property

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.LINE_FREEZE_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID     ""[PROCESSID]""," & _
                vbNewLine & "SEQNO          ," & _
                vbNewLine & "STATUS         ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE    sysdate," & _
                vbNewLine & "MSISDN         ," & _
                vbNewLine & "CO_ID          ""fn_msisdn_to_coid(:MSISDN)"" " & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{1}||{0}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return ";"c
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^5\d{9,9}$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property


        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "ORDERED"
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "SINGLE_ORDERED"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.LINE_FREEZE.STARTPROCESS_SINGLE"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property
    End Class

    Public NotInheritable Class LinefreezeWithOtherGSMDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As LinefreezeWithOtherGSMDataLoadConfigurationProvider
            Return New LinefreezeWithOtherGSMDataLoadConfigurationProvider
        End Function

        Private Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub


        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "LINE_FREEZE"
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.LINE_FREEZE_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.LINE_FREEZE_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return "EU_BILL.LINE_FREEZE_REQUEST_HISTORY"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.LINEFREEZE_PROCESS_ID_SEQ"
            End Get
        End Property

        Public ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.LINE_FREEZE_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID     ""[PROCESSID]""," & _
                vbNewLine & "SEQNO          ," & _
                vbNewLine & "STATUS         ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE    sysdate," & _
                vbNewLine & "MSISDN         ," & _
                vbNewLine & "CO_ID          ""fn_msisdn_to_coid(:MSISDN)"", " & _
                vbNewLine & "CONTACT_MSISDN         " & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{1}||{0}||{1}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return ";"c
            End Get
        End Property

        Public ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^5\d{9,9};5\d{9,9}$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property


        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "ORDERED"
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "SINGLE_ORDERED"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.LINE_FREEZE.STARTPROCESS_SINGLE"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property
    End Class






    Public Class TevkifatDataLoadConfigurationProvider
        Implements IDataloadConfigurationProvider
        Private _RequestProcessorMethodParameters As System.Collections.Specialized.HybridDictionary
        Private _ExternalDatalineValidators As DatalineValidatorCollection

        Public Shared Function CreateInstance() As TevkifatDataLoadConfigurationProvider
            Return New TevkifatDataLoadConfigurationProvider
        End Function

        Protected Sub New()
            Me._RequestProcessorMethodParameters = New System.Collections.Specialized.HybridDictionary
            Me._ExternalDatalineValidators = New DatalineValidatorCollection
        End Sub


        Public ReadOnly Property ModuleName() As String Implements IDataloadConfigurationProvider.ModuleName
            Get
                Return "SIMPLE_BULK_OP"
            End Get
        End Property

        Public ReadOnly Property MasterDataTableName() As String Implements IDataloadConfigurationProvider.MasterDataTableName
            Get
                Return "EU_BILL.SIMPLE_BULK_OPS_MASTER_DATA"
            End Get
        End Property

        Public ReadOnly Property DetailDataTableName() As String Implements IDataloadConfigurationProvider.DetailDataTableName
            Get
                Return "EU_BILL.SIMPLE_BULK_OPS_DETAIL_DATA"
            End Get
        End Property

        Public ReadOnly Property HistoryTableName() As String Implements IDataloadConfigurationProvider.HistoryTableName
            Get
                Return "EU_BILL.SIMPLE_BULK_OPS_REQUEST_HIST"
            End Get
        End Property

        Public ReadOnly Property ProcessIDSequenceName() As String Implements IDataloadConfigurationProvider.ProcessIDSequenceName
            Get
                Return "EU_BILL.SIMPLE_BULK_OPS_PROCESS_ID_SEQ"
            End Get
        End Property

        Public Overridable ReadOnly Property DataFileHeader() As String Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.SIMPLE_BULK_OPS_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID   ""[PROCESSID]""," & _
                vbNewLine & "SEQNO        ," & _
                vbNewLine & "STATUS       ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE  sysdate," & _
                vbNewLine & "CUSTCODE       " & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public ReadOnly Property DataLineTemplate() As String Implements IDataloadConfigurationProvider.DataLineTemplate
            Get
                Return "|{1}||{0}|"
            End Get
        End Property

        Public ReadOnly Property DataPartSeperator() As Char Implements IDataloadConfigurationProvider.DataPartSeperator
            Get
                Return ";"c
            End Get
        End Property

        Public Overridable ReadOnly Property DatalineValidationExpression() As String Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^(\d{1,20}\.)+\d{1,20}$"
            End Get
        End Property

        Public ReadOnly Property ExternalDatalineValidators() As DatalineValidatorCollection Implements IDataloadConfigurationProvider.ExternalDatalineValidators
            Get
                Return Me._ExternalDatalineValidators
            End Get
        End Property


        Public ReadOnly Property BatchProcessingStatusText() As String Implements IDataloadConfigurationProvider.BatchProcessingStatusText
            Get
                Return "ORDERED"
            End Get
        End Property

        Public ReadOnly Property OnlineProcessingStatusText() As String Implements IDataloadConfigurationProvider.OnlineProcessingStatusText
            Get
                Return "SINGLE_ORDERED"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodName() As String Implements IDataloadConfigurationProvider.RequestProcessorMethodName
            Get
                Return "EU_BILL.BULK_PROCESSOR.PROCESS_SIMPLE_BULK_OP_REQ"
            End Get
        End Property

        Public ReadOnly Property RequestProcessorMethodParameters() As System.Collections.Specialized.HybridDictionary Implements IDataloadConfigurationProvider.RequestProcessorMethodParameters
            Get
                Return Me._RequestProcessorMethodParameters
            End Get
        End Property


        Public Overridable Function GetNextProcessID() As Integer

            Dim result As Object = persistent.myDBConn.ORAScalar(String.Format("select {0}.nextval from dual", Me.ProcessIDSequenceName))
            If result Is Nothing OrElse IsDBNull(result) Then
                result = persistent.myDBConn.ORAScalar(String.Format("select nvl(max(process_id), 0) + 1 from {0}", Me.MasterDataTableName))
            End If

            If result Is Nothing OrElse IsDBNull(result) Then
                result = -1
            End If

            Return result

        End Function

    End Class

    Public Class TevkifatByMSISDNDataLoadConfigurationProvider
        Inherits TevkifatDataLoadConfigurationProvider


        Public Shared Shadows Function CreateInstance() As TevkifatByMSISDNDataLoadConfigurationProvider
            Return New TevkifatByMSISDNDataLoadConfigurationProvider
        End Function



        Public Overrides ReadOnly Property DataFileHeader() As String 'Implements IDataloadConfigurationProvider.DataFileHeader
            Get
                Return "LOAD DATA" & _
                vbNewLine & "INFILE *" & _
                vbNewLine & "APPEND INTO TABLE EU_BILL.SIMPLE_BULK_OPS_DETAIL_DATA" & _
                vbNewLine & "fields terminated by '|' TRAILING NULLCOLS" & _
                vbNewLine & "(" & _
                vbNewLine & "PROCESS_ID   ""[PROCESSID]""," & _
                vbNewLine & "SEQNO        ," & _
                vbNewLine & "STATUS       ""'LOADED'""," & _
                vbNewLine & "STATUS_DATE  sysdate," & _
                vbNewLine & "MSISDN       " & _
                vbNewLine & ")" & _
                vbNewLine & "BEGINDATA"
            End Get
        End Property

        Public Overrides ReadOnly Property DatalineValidationExpression() As String 'Implements IDataloadConfigurationProvider.DatalineValidationExpression
            Get
                Return "^5\d{9,9}$"
            End Get
        End Property
    End Class
End Namespace
